home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Atari Compendium
/
The Atari Compendium (Toad Computers) (1994).iso
/
files
/
umich
/
utils
/
clearmem.arc
/
bcmp.asm
next >
Wrap
Assembly Source File
|
1988-08-19
|
772b
|
39 lines
public _bcmp ; compare two blocks of memory
; BCMP(src, dst, len)
; char *src, *dst;
; long len;
_bcmp: move.l 4(sp),A0
move.l 8(sp),A1
move.l 12(sp),D0
move.w D0,D1 ;longword align address
neg.w D1
and.w #3,D1
cmp.w D0,D0 ;force Z bit
bra .bc2
.bc1 cmpm.b (A0)+,(A1)+
.bc2 dbne D1,.bc1
bne .bcfail
move.l D0,D1
lsr.l #2,D1 ;# of longwords to compare
cmp.w D0,D0 ;force Z bit
bra .bc11
.bc10 cmpm.l (A0)+,(A1)+
.bc11 dbne D1,.bc10
bne .bcfail
sub.l #$10000,D0
bcc .bc10
and.w #3,D0 ;remaining bytes to compare
cmp.w D0,D0 ;force Z bit
bra .bc21
.bc20 cmpm.b (A0)+,(A1)+
.bc21 dbne D0,.bc20
bne .bcfail
moveq.l #1,D0 ;success!
rts
.bcfail moveq.l #0,D0 ;failure!
rts